﻿Public Interface IMembershipProvider

    Property RemoteProviderName() As String
    Property ApplicationName() As String
    ReadOnly Property EnablePasswordReset() As Boolean
    ReadOnly Property EnablePasswordRetrieval() As Boolean
    ReadOnly Property MaxInvalidPasswordAttempts() As Integer
    ReadOnly Property MinRequiredNonAlphanumericCharacters() As Integer
    ReadOnly Property MinRequiredPasswordLength() As Integer
    ReadOnly Property PasswordAttemptWindow() As Integer
    ReadOnly Property PasswordFormat() As System.Web.Security.MembershipPasswordFormat
    ReadOnly Property PasswordStrengthRegularExpression() As String
    ReadOnly Property RequiresQuestionAndAnswer() As Boolean
    ReadOnly Property RequiresUniqueEmail() As Boolean
    ReadOnly Property UserIsOnlineTimeWindow() As Integer

    Sub UpdateUser(ByVal user As System.Web.Security.MembershipUser)
    Sub Initialize(ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection)

    Function ChangePassword(ByVal username As String, ByVal oldPassword As String, ByVal newPassword As String) As Boolean
    Function ChangePasswordQuestionAndAnswer(ByVal username As String, ByVal password As String, ByVal newPasswordQuestion As String, ByVal newPasswordAnswer As String) As Boolean
    Function CreateUser(ByVal username As String, ByVal password As String, ByVal email As String, ByVal passwordQuestion As String, ByVal passwordAnswer As String, ByVal isApproved As Boolean, ByVal providerUserKey As Object, ByRef status As System.Web.Security.MembershipCreateStatus) As System.Web.Security.MembershipUser
    Function DeleteUser(ByVal username As String, ByVal deleteAllRelatedData As Boolean) As Boolean
    Function FindUsersByEmail(ByVal emailToMatch As String, ByVal pageIndex As Integer, ByVal pageSize As Integer, ByRef totalRecords As Integer) As System.Web.Security.MembershipUserCollection
    Function FindUsersByName(ByVal usernameToMatch As String, ByVal pageIndex As Integer, ByVal pageSize As Integer, ByRef totalRecords As Integer) As System.Web.Security.MembershipUserCollection
    Function GetAllUsers(ByVal pageIndex As Integer, ByVal pageSize As Integer, ByRef totalRecords As Integer) As System.Web.Security.MembershipUserCollection
    Function GetNumberOfUsersOnline() As Integer
    Function GetPassword(ByVal username As String, ByVal answer As String) As String
    Function GetUser(ByVal providerUserKey As Object, ByVal userIsOnline As Boolean) As System.Web.Security.MembershipUser
    Function GetUser(ByVal username As String, ByVal userIsOnline As Boolean) As System.Web.Security.MembershipUser
    Function GetUserNameByEmail(ByVal email As String) As String
    Function ResetPassword(ByVal username As String, ByVal answer As String) As String
    Function UnlockUser(ByVal userName As String) As Boolean
    Function ValidateUser(ByVal username As String, ByVal password As String) As Boolean

End Interface